﻿Imports System.Data.OleDb
Imports System.Data

Public Class Turnos
    Inherits Datos

    Public Sub NuevoTurno(ByVal tipoServicio As Integer, ByVal dni As String, _
                          ByVal fecha As Date, ByVal idHorario As Integer)
        Dim comando As New OleDbCommand()
        comando.CommandType = Data.CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        comando.CommandText = "reservarHorario"

        'Agregamos a la colección de parámetros los parametros que necesita el procedimiento almacenado
        comando.Parameters.Add(New OleDbParameter("@paramTipoServicio", tipoServicio))
        comando.Parameters.Add(New OleDbParameter("@paramDni", dni))
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        comando.Parameters.Add(New OleDbParameter("@paramIdHorario", idHorario))

        Conexion.Open()
        comando.ExecuteNonQuery()
        Conexion.Close()

    End Sub

    Public Sub QuitarTurno(ByVal tipoServicio As Integer, ByVal dni As String, _
                      ByVal fecha As Date, ByVal idHorario As Integer)
        Dim comando As New OleDbCommand()
        comando.CommandType = Data.CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        comando.CommandText = "quitarHorario"

        'Agregamos a la colección de parámetros los parametros que necesita el procedimiento almacenado
        comando.Parameters.Add(New OleDbParameter("@paramTipoServicio", tipoServicio))
        comando.Parameters.Add(New OleDbParameter("@paramDni", dni))
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        comando.Parameters.Add(New OleDbParameter("@paramIdHorario", idHorario))

        Conexion.Open()
        comando.ExecuteNonQuery()
        Conexion.Close()

    End Sub

    Public Function obtenerHorarios() As DataSet
        Dim comando As New OleDb.OleDbCommand()
        comando.CommandType = CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        Conexion.Open()
        comando.CommandText = "obtenerHorarios"
        Dim ds As New DataSet() 'System.Data.DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        ''Fill= Método que Agrega filas al objeto DataSet y crea un objeto DataTable denominado "Tabla", en nuestro caso "Producto".
        DA.Fill(ds, "Horarios")
        ''Cierro la conexión
        Conexion.Close()
        ''Como toda función debe retornar al uso RETURN
        Return ds

    End Function

    Public Function obtenerHorarios(ByVal fecha As Date) As DataSet
        Dim comando As New OleDb.OleDbCommand()
        comando.CommandType = CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        Conexion.Open()
        comando.CommandText = "obtenerHorariosFecha"
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        Dim ds As New DataSet() 'System.Data.DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        ''Fill= Método que Agrega filas al objeto DataSet y crea un objeto DataTable denominado "Tabla", en nuestro caso "Producto".
        DA.Fill(ds, "HorariosFecha")
        ''Cierro la conexión
        Conexion.Close()
        ''Como toda función debe retornar al uso RETURN
        Return ds
    End Function

    Public Function obtenerHorarios(ByVal fecha As DateTime, ByVal dni As String) As DataSet
        Dim comando As New OleDb.OleDbCommand()
        comando.CommandType = CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        Conexion.Open()
        comando.CommandText = "obtenerHorariosFechaDni"
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        comando.Parameters.Add(New OleDbParameter("@paramDni", dni))
        Dim ds As New DataSet() 'System.Data.DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        ''Fill= Método que Agrega filas al objeto DataSet y crea un objeto DataTable denominado "Tabla", en nuestro caso "Producto".
        DA.Fill(ds, "HorariosFechaDni")
        ''Cierro la conexión
        Conexion.Close()
        Return ds
    End Function

    Public Function obtenerHorarios(ByVal fecha As DateTime, ByVal nroMaquina As Integer) As DataSet
        Dim comando As New OleDb.OleDbCommand()
        comando.CommandType = CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        Conexion.Open()
        comando.CommandText = "obtenerHorariosFechaMaquina"
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        comando.Parameters.Add(New OleDbParameter("@paramNroMaquina", nroMaquina))
        Dim ds As New DataSet() 'System.Data.DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        ''Fill= Método que Agrega filas al objeto DataSet y crea un objeto DataTable denominado "Tabla", en nuestro caso "Producto".
        DA.Fill(ds, "HorariosFechaMaquina")
        ''Cierro la conexión
        Conexion.Close()
        Return ds
    End Function

    Public Function obtenerHorarios(ByVal fecha As DateTime, ByVal dni As String, ByVal nroMaquina As Integer) As DataSet
        Dim comando As New OleDb.OleDbCommand()
        comando.CommandType = CommandType.StoredProcedure
        comando.Connection = Me.Conexion
        Conexion.Open()
        comando.CommandText = "obtenerHorariosFechaDniMaquina"
        comando.Parameters.Add(New OleDbParameter("@paramFecha", fecha))
        comando.Parameters.Add(New OleDbParameter("@paramDni", dni))
        comando.Parameters.Add(New OleDbParameter("@paramNroMaquina", nroMaquina))
        Dim ds As New DataSet() 'System.Data.DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        ''Fill= Método que Agrega filas al objeto DataSet y crea un objeto DataTable denominado "Tabla", en nuestro caso "Producto".
        DA.Fill(ds, "HorariosFechaDniMaquina")
        ''Cierro la conexión
        Conexion.Close()
        Return ds
    End Function

End Class
